import logging

from redis import StrictRedis


class Config(object):
    """工程配置信息"""

    SECRET_KEY = "0mFjQmZuaZRkEi6ItAoOyIUkQSItpATmKeMPbrA0psZYlL1QI25mwNd9+0GpnI1B"

    # 数据库配置
    SQLALCHEMY_DATABASE_URI = "mysql://root:mysql@127.0.0.1:3306/information"
    SQLALCHEMY_TRACK_MODIFICATIONS = False
    # 设置会每次请求结束后会自动执行一次commit操作
    SQLALCHEMY_COMMIT_ON_TEARDOWN = True

    # redis 配置
    REDIS_HOST = '127.0.0.1'
    REDIS_PORT = 6379

    # flask_session 的配置信息
    #  指定session保存在redis中
    SESSION_TYPE = "redis"
    # 让 cookie 中的 session_id 被加密签名处理
    SESSION_USE_SIGNER = True
    # 使用redis的实例
    SESSION_REDIS = StrictRedis(host=REDIS_HOST, port=REDIS_PORT)
    # 设置需要过期
    SESSION_PERMANENT = False
    # session 的有效期，单位是秒
    PERMANENT_SESSION_LIFETIME = 86400
    # 默认日志等级
    LOG_LEVEL = logging.DEBUG


class DevelopmentConfig(Config):
    """开发模式下的配置"""
    DEBUG = True


class ProductionConfig(Config):
    """生产环境下的配置"""
    DEBUG = False
    LOG_LEVEL = logging.ERROR


class TestingConfig(Config):
    """测试环境下的配置"""
    DEBUG = True
    TESTING = True


config = {
    'development': DevelopmentConfig,
    'production': ProductionConfig,
    'testing': TestingConfig
}
